Data communications is an essential part of a large number of electronic systems today. One of the most common data communication methods utilizes asynchronous serial data transfers in which the data is transferred serially one bit at a time without the help of a synchronizing clock and without incorporating an embedded clock in the serial data stream. This mode of data communication is particularly common in applications based on microcontrollers. The rate at which the bits are transferred is termed the baud rate. The timing for transmitting and receiving the data, is supplied by “Baud rate generators” that are provided separately at both the transmitting and the receiving ends. Correct communication requires the transmission baud rate and reception baud rates to be matched reasonably closely. Component tolerances lead to variations in actual baud rates achieved. This variation makes it necessary to have a mechanism that can determine the baud rate automatically and provide suitable corrective action.
Existing solutions for providing automatic baud rate detection utilize considerable external hardware to achieve automatic baud rate determination. U.S. Pat. No. 5,612,961 for instance, utilises a second communication device to verify the baud rate on the basis of transmitting and than receiving the same data byte.